package com.sxj.corejava.code09_集合.List;

import java.util.ArrayList;
import java.util.List;

/**
 * @author 石小俊
 * 2024年07月24日 9:07
 */
public class Test02_常用方法 {
    static List<String> list2;

    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("admin");
        list.add("alice");
        list.add("jack");
        list.add("tom");
        list.add("alex");
        list.add("lucy");
        System.out.println(list);
        System.out.println("集合中元素的数量:" + list.size());

        list.add(3, "lily");
        System.out.println(list);

        String name = list.set(3, "alex");
        System.out.println("修改前的值:" + name);
        System.out.println(list);

        // 如果成功移除,则返回true
        // 如果没有指定元素,则返回false
        boolean flag = list.remove("jack");
        System.out.println("是否成功移除:" + flag);
        System.out.println(list);

        // 如果有指定索引位置则成功移除并返回被移除的元素
        // 如果没有指定索引位置,则抛出异常
        String remove = list.remove(3);
        System.out.println("已移除索引位置为3的元素:" + remove);
        System.out.println(list);

        System.out.println("获取索引位置为2的元素:" + list.get(2));
        System.out.println("集合是否为空:" + list.isEmpty());

        // 当集合没有实例化时,其值为null
        System.out.println(list2);
        // 当集合实例化之后,其值不是null
        List<String> list3 = new ArrayList<>();
        System.out.println(list3);
        // 集合实例化之后判断是否为空时不能使用null进行判断
        // 必须通过isEmpty方法进行判断
        System.out.println(list2 == null);
        System.out.println(list3 == null);
        System.out.println("list3是否为空" + list3.isEmpty());
        //System.out.println(list2.isEmpty());

        System.out.println(list);
        System.out.println("alex第一次出现的索引位置:" + list.indexOf("alex"));
        System.out.println("jack第一次出现的索引位置:" + list.indexOf("jack"));
        System.out.println("alex最后一次出现的索引位置:" + list.lastIndexOf("alex"));

        System.out.println("集合中是否存在元素admin:" + list.contains("admin"));
        System.out.println("集合中是否存在元素jack:" + list.contains("jack"));
    }

}
